5  Genomics and Epigenomics Analysis

5.1 On this page

Biological insights and take-home messages are at the bottom of the page at Lesson Learnt: Section 5.5.

  • Here we investigate all the genomics and epigenomics data available for the three kidney carcinomas.
  • First, we analyse the gene Copy Number Variants (CNVs).
    • We test CNVs distribution across the three kidney carcinomas and investigate any signature associated with them.
    • We perform some exploratory analyses on samples, CNVs and clinical covariates.
  • The, we look into the somatic mutations detected across the three kidney carcinomas.
    • We test the somatic mutations distribution across the three kidney carcinomas and investigate any signature associated with them.
    • We perform some exploratory analyses on samples, somatic mutations and clinical covariates.
  • Finally, we focus on DNA methylation and epigenomics signals.
    • We perform a QC on probe intensities (corresponding to CpG islands different methylation levels), their distribution across samples and we impute eventual missing values.
    • We do some exploratory analyses on samples, probe intensities and clinical covariates.
    • We then run a formal Differential Expression analysis to identify probes that have different methylation levels across the three Kidney cancer types, and the genes associated to them.
    • We perform Gene Set Enrichment Analyses on the genes associated with differentially methylated CpG islands to investigate biological and molecular themes that discriminates between the three Kidney cancer types.

5.2 Copy Number Variants (CNVs)

5.2.1 Filtering & QC

The copy number variants are available at TCGA as information collapsed at the gene level. CNVs information are reported for 24,776 genes. For each gene, we have an integer value ranging from -2 (complete deletion of the genomic region) to +2 (complete duplication of both alleles), with 0 indicating no CNV event for that gene.

All of the 24,776 reported genes are affected by at least a CNV event across 877 kidney carcinomas samples, only for 10 samples we do not have CNV information.

Patients affected by KICH kidney carcinomas seem to have a significantly higher number of genes affected by CNVs, followed by KIRP patients. KIRC patients have the least amount of genes affected by CNVs. In KICH and KIRP patients, also, CNVs involving gene duplications are more abundant than the ones involving gene deletions.

Figure 1: CNVs distributions across kidney carcinomas.

5.2.2 CNVs signatures across Kidney cancers

Let’s now investigate the presence of any CNV signature across the three kidney carcinomas. As mentioned before, the provided TCGA CNVs data are reported at the gene level, but obviously, Whole Genome Duplication or Chromosomal Aberration events would usually be larger than a single gene and span several genes. Since we do not have access to the raw genomics data, a first naive approach would be to walk each chromosome and bridge together as single CNV event regions between consecutive genes having the same CNV score as reported by TCGA. This would allow to collapse the information of 24,776 different segments (the reported genes) into tens or hundreds of long, consecutive genomics ranges. The approach would work well under the assumption that large CNV events are much more likely to happen than short, isolated CNV events, i.e.: spanning just one or few genes. Moreover, the available CNV data are limited to the gene level (~1-2% of total human genome length), which implies that we have no direct information on CNV events (or lack thereof) over 98% of the genome. So, we have decided to do not bridge the genomic regions across consecutive genes with the same CNV score as single CNV events, and keep the downstream CNV analyses at the gene level.

Figure 2: CNVs distributions at the gene level across 877 kidney carcinomas biopsies.

As seen in Figure 1, biopsies from KICH patients show extensive CNV events that seems to span most of the coding genome. CNVs events seems to have similar patterns across the different kidney carcinomas, and they appear to span full-length chromosomes. Within each kidney carcinoma type, it seems like biopsies could be clustered in different subtypes dependeing on their CNV signatures.

In the next steps, we will try to correlates these CNV signatures to other clinical covariates.

5.2.3 Dimesionality Reduction and Dataset Exploration

5.2.3.1 UMAP on CNVs data

Let’s check how the samples cluster on a UMAP. For transcriptomics data (see Section 2.3.1) we have drawn the UMAP based on the top 1,000 most variable genes. Given the nature (and distribution) of the underlying CNV data, we have decided to draw the UMAP based on the top 1,000, 2,000, 3,000, 4,000, 5,000 and 10,000 most variable CNV-affected genes.

Increasing the number of genes to compute the UMAP improved the clustering between the samples of the different kidney carcinomas. A cluster of overlapping biopsies from the three kidney carcinomas is visible on the right hand side of N=1000, N=2000, N=3000, N=10000 and on the left-hand side of N=5000 suggesting that CNVs can poorly discriminate between KIRC, KIRP and KICH only on a subset of CNV subtypes.

Figure 3: Kidney CNVs UMAPs based on top N most variable CNV-affected genes.

5.2.3.2 PCA

As we did for the other omics data, the next step in the dataset exploration is to perform the Principal Component Analysis.

Figure 4: PCA, exploration.

The first 18 Principal Components capture more than 80% of the variance in the Kidney cancers CNVs dataset, with the first two components (PC1 and PC2) capturing a bit more than 33% of the variance.

When we project the samples in the PC1 and PC2, we can see that the PC1 separates KIRC, KICH and KIRP, which instead cluster together. As observed in the UMAP, the clustering is more noisy than what observed for the other omics analyses (transcriptomics, proteomics and micro-RNAs).

Figure 5: PCA, biplot PC1 x PC2.

We can also investigate other dimensions Principal Components, to see if there is a component that manages to fully resove the three cancer types. PC1 PC4 seems to best separate samples from KIRC, KIRP and KICH.

Figure 6: PCA, pairs plots.

Let’s check the Pearson correlation with other clinical covariates.

Cancer_type correlates well with PC1 and PC4. Most of the TCGA-defined molecular subtypes correlates with PC1, PC2 and PC4. Interestingly, TCGA Subtype_CNA, which should be based on he CNV data, correlates with PC3 and PC4, but not PC1. PC3 is interesting since it correlates with follow_up_tumor_status, pathologic_t and tumor_stage, suggesting a link between CNVs signatures and cancer advancement, which is a common feature across all kidney carcinomas and not limited to KIRC, KIRP or KICH.

Figure 7: PCA, correlations between clinical covariates and Principal Components.

5.3 Somatic mutations

Let’s now dig into the Somatic Mutations detected in the biopsies of the kidney carcinomas patients. We have somatic information for 711 samples (~80% of the total 887 patients in the cohort). TCGA provides information on somatic mutations as binary information for each gene: 1, if the patient has a non-silent mutation for that gene, or 0, if the patient does not have a non-silent mutation on that gene. We could retrieve info for for 40,542 genes, and 13,584 of them had a non-silent mutations in at least one of our 711 kidney carcinomas patients. The first step was then to discard from downstream analysis the 26,958 that appeared not mutated in the kidney carcinomas biopsies.

Let’s now look at the distribution of somatic mutations across the different kidney carcinomas. KICH patients had an average of 31 genes with non-mutations, against the 53 and 56 average number of genes with non-silent mutations in KIRC and KIRP patients, respectively. Chromosomes 1, 2, 3, 11, 17 nad 19 where the chromosomes with more mutated genes on average.

Figure 8: Non-silent somatic mutations distributions.

5.3.1 Mutational signatures across Kidney cancers

Let’s now investigate the presence of any non-silent somatic mutation signature across the three kidney carcinomas.

Figure 9: non-silent somatic mutations distributions across 711 kidney carcinomas biopsies.

While for KICH and KIRP patients the non-silent somatic mutations seems to be evenly distributed across the genome, KIRC patients clearly show an over-abundance of 3 preferably mutated genes, one in chromosome 2 and two in chromosome 3.

Using external_gene_name as id variables

In KICH, ~30% of the patients (21 / 66) had a non-silent mutation in TP53, followed by 9% of patients (6 / 66) having a mutation on PTEN. As expected, KIRC patients show the highest mutational burden, with ~47% of patients (170 / 365) with mutation in VHL, ~40% of patients (145 / 365) with mutation on PBRM1 and ~20% of patients (72 / 365) with non-silent somatic mutations on TTN. As well, 16% of KIRP patients (45 / 280) has non-silent somatic mutations on TTN gene.

Figure 10: top 10 genes with non-silent somatic mutations across the kidney carcinomas.

In the table below are reported all the 19,573 somatic mutations detected across the biopsies of the three kidney carcinomas.

5.3.2 Dimesionality Reduction and Dataset Exploration

5.3.2.1 UMAP on somatic mutations data

Let’s check how the samples cluster on a UMAP. As for the CNVs data (see Section 5.2.3.1), given the nature (and distribution) of the underlying non-silent mutations data, we have decided to draw the UMAP based on the top 1,000, 2,000, 3,000, 4,000, 5,000 and 10,000 most variable affected genes.

The non-silent somatic mutation data did not resulted in any interpretable cluster.

Figure 11: UMAP based on non-silent somatic mutation data of kidney carcinomas.

5.3.2.2 PCA

As we did for the other omics data, the next step in the dataset exploration is to perform the Principal Component Analysis.

Figure 12: PCA, exploration.

The PCA captures little to no variance observed in the non-silent somatic mutations, moreover, it fails to cluster the biopsies based on the kidney carcinoma type of origin, as seen with the UMAP. Few samples seems to be outliers driving most of the variance observed in PC1 (1.82% variance) and PC2 (1.37% variance).

PC4 and PC6 seems to separate KIRC samples into four distinct clusters, one of which overlapping with a cluster containing as well KIRP and KICH biopsies.

Figure 13: PCA, pairs plots.

PC4 (0.66% of observed variance) seems to correlate with some clinical covariates, such as histological_grade and subtype_mRNA, but it is difficult to attach a biological relevance to this observation since we cannot properly cluster samples on the PCAs.

Figure 14: PCA, correlations between clinical covariates and Principal Components.

5.4 Epigenomics

Now, we move forward to analyse the epigenomics data, that provides information on the methylation status of the CpG islands across the genomes of the kidney carcinomas. The methylation status is captured with Illumina 450k arrays, and for each CpG island we have two measurements: a methylated intensity (M) and an unmethylated intensity (U) that allows for calculating the propostion of methilation at each CpG island.

For the TCGA epigenomics data, for each CpG island we have available the corresponding Beta value, which is calculated as:

$$

=

$$

Under ideal conditions, a value of zero indicates that all copies of the CpG site in the sample were completely unmethylated (no methylated molecules were measured) and a value of one indicates that every copy of the site was methylated.

5.4.1 Filtering & QC

We have methylation information for 646 out of the 887 kidney carcinoma biopsies: 65 KICH, 311 KIRC and 270 KIRP patients, respectively. TCGA provides methylation status as beta values for 148,068 whitelisted probes. Out of them, 6,364 probes consistently have missing values across the 646 samples, so after filtering them out we obtain 141,704 probes.

Plotting the beta-values distribution for the probes of each biopsies reveals their bimodal distribution, indicating that for each sample, the probes can either be unmethylated (beta value = 0) or methylated (beta value = 1).

Figure 15: Distribution of whitelisted beta values densities across the 646 kidney carcinoma biopsies.

5.4.2 Dimesionality Reduction and Dataset Exploration

5.4.2.1 UMAP on epigenomics data

After we excluded biopsys from normal tissues and other tumors and we filtered out the lowly expressed genes, the UMAP shows three clusters that are better refined than the ones depicted in Section 1.2.1, and that roughly correspondes with three different kidney cancer subtypes.

Figure 16: Kidney epigenomics UMAP.

5.4.2.2 PCA

Figure 3: PCA, exploration

The first 24 Principal Components capture more than 80% of the variance in the Kidney cancers transcriptomics dataset, with the first two components (PC1 and PC2) capturing a bit more than 25% of the variance.

When we project the samples in the PC1 and PC2, we can see that the PC1 separates KIRC from KICH adn KIRP, which instead cluster together. The second component PC2, instead, seems to partially separate KICH and KIRP samples.

Figure 4: PCA, biplot PC1 x PC2

We can also investigate other dimensions Principal Components, to see if there is a component that manages to fully resove the three cancer types. PC4 seems to separates better the KICH from KIRP, while PC1 can discriminate between KIRC and KIRP.

Figure 5: PCA, pairs plots

Figure 5: PCA, loadings

cg03830585 –> ITPR1 protects renal cancer cells against natural killer cells by inducing autophagy

cg00868875 –> KCTD1

cg07037412 –> CACNA1H Voltage-gated calcium channels: Novel targets for cancer therapy CACNA1H was downregulated in gastrointestinal stromal tumor, sarcoma and renal cancer Notably, compared with our previous research, CACNA1H was specifically overexpressed relative to normal tissue samples in renal cancer, sarcoma and gastrointestinal stromal tumors.

Figure 5: PCA, correlations between clinical covariates and Principal Components

5.4.3 Probe-Wise Differential Methylation

Figure 5: top 3 Differentially Methylated Probes per cancer type

print(summary(dt)) KIRC_vs_KICH KIRP_vs_KICH KIRC_vs_KIRP Down 56952 43222 69811 NotSig 45814 51748 42083 Up 45302 53098 36174

Figure 6: Volcano plots of each contrats reporting the genes differentially expressed

Figure 7: UpSet reporting the genes differentially methylated probes in common across all contrasts

Tables of differentially methylated probes.

ds

5.4.3.1 Functional Enrichments

Let’s see if any function is enriched in the genes of the Differentially Methilated Probes. Simply extract the methylated probes, compare agains the background ans see if the associated genes are diofferentialy methylated, and see the fucntions / pathways associated with them.

GO terms

KEGG pathways

GO terms

KEGG

s

ss

s

s

s

s

s

Let’s compare clusters

s

d

s s

Figure 17: dotplot of enriched KEGG pathways

Figure 17: dotplot of enriched KEGG pathways

Figure 17: dotplot of enriched KEGG pathways

x

Figure 20: dotplot of enriched Reactome pathways

Figure 20: dotplot of enriched Reactome pathways

Figure 20: dotplot of enriched Reactome pathways

s

x ssss

s

5.4.3.2 Aggregate probes into functional regions

Often, differential methylation of a single CpG is not so informative or can be hard to detect. Therefore, knowing whether several CpGs near to each other (or regions) are concordantly differentially methylated can be of greater interest.

There are several Bioconductor packages that have functions for identifying differentially methylated regions from 450k data. Some of the most popular are the dmrFind function in the charm package, which has been somewhat superseded for 450k arrays by the bumphunter function in minfi, and, the dmrcate in the DMRcate package. They are each based on different statistical methods, but we will be using dmrcate here, as it is based on limma and thus we can use the design and contrast matrix we defined earlier.

We will again start from our matrix of M-values. For this kind of analysis, this matrix has to be annotated with the chromosomal position of the CpGs and their gene annotations. Because in a first step the limma differential methylation analysis for single CpGs will be run again, we need to specify the design matrix, contrast matrix and contrast of interest.

Once we have the relevant statistics for the individual CpGs, we can then use the dmrcate function to combine them to identify differentially methylated regions. Of particular interest here is the lambda parameter; this value is the number of nucleotides that is allowed between significant CpGs before splitting them up in different regions. So a smaller lambda will result in more but smaller regions. For array data, the authors of the dmrcate package currently recommend a lambda of 1000. The main output table DMRs contains all of the regions found, along with their genomic annotations and p-values. To inspect this object and further visualization, you can best use the extractRanges function to create a GRanges object.

Differentially Methylated regions

KIRC_vs_KICH: 20346 KIRP_vs_KICH: 19243 KIRC_vs_KIRP: 20773

Just as for the single CpG analysis, it is a good idea to visually inspect the results to make sure they make sense. For this, use the DMR.plot function. By default, this plot draws the location of the DMR in the genome, the position of nearby genes, the positions of the CpG probes, the Beta value levels of each sample as a heatmap and the mean methylation levels for the various sample groups in the experiment.

5.4.3.3 Functional Regions mCSEA

An alternative approach to detect DMRs is to predefine the regions to be tested; so, as opposed to the previous approach where the regions are defined according to heuristic distance rules we can define regions based on a shared function. For this, we will used the package mCSEA which contains three types of regions for 450K and EPIC arrays: promoter regions, gene body and CpG Islands. mCSEA is based on Gene Set Enrichment analysis (GSEA), a popular methodology for functional analysis that was specifically designed to avoid some drawbacks in the field of gene expression. Briefly, CpG sites are ranked according to a metric (logFC, t-statistic, …) and an enrichment score (ES) is calculated for each region. This is done by running through the entire ranked CpG list, increasing the score when a CpG in the region is encountered and decreasing the score when the gene encountered is not in the region. A high ES indicates these probes are found high up in the ranked list. In other words, a high (N)ES value means that for the CpG sites in this region there is - on average - a shift towards a higher methylation level. This approach has been shown to be more effective to detect smaller but consistent methylation differences.

promoters

genes

85promoters, 150 genes

74 promoters 0 genes

promoters

genes

172 promoters, 50 genes

promoters

genes

cc

Figure 8: dotplot of enriched GO Biological Process terms

ss

5.4.3.3.1 mCSEA Functional Enrichments

Let’s see if any function is enriched in the genes of the Differentially Methilated Probes. Simply extract the methylated probes, compare agains the background ans see if the associated genes are diofferentialy methylated, and see the fucntions / pathways associated with them.

d

Figure 8: dotplot of enriched GO Biological Process terms

Figure 8: dotplot of enriched GO Biological Process terms

Figure 8: dotplot of enriched GO Biological Process terms

Figure 17: dotplot of enriched KEGG pathways

Figure 17: dotplot of enriched KEGG pathways

Figure 20: dotplot of enriched Reactome pathways

Figure 20: dotplot of enriched Reactome pathways

Figure 20: dotplot of enriched Wikipathways pathways

c

5.5 Lessons Learnt

[[[[PROPER DESCRIPTION OF FINDINGS AND TRANSCRIPTOMICS ENRICHMENTS]]]]

So far, we have learnt:

  • A

5.6 Session Information

R version 4.3.2 (2023-10-31)
Platform: x86_64-conda-linux-gnu (64-bit)
Running under: openSUSE Tumbleweed

Matrix products: default
BLAS/LAPACK: /home/andrea/miniforge3/envs/moai/lib/libmkl_rt.so.2;  LAPACK version 3.9.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=it_IT.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

time zone: Europe/Brussels
tzcode source: system (glibc)

attached base packages:
 [1] parallel  grid      stats4    stats     graphics  grDevices utils    
 [8] datasets  methods   base     

other attached packages:
 [1] DMRcatedata_2.20.3                                 
 [2] ExperimentHub_2.10.0                               
 [3] AnnotationHub_3.10.1                               
 [4] BiocFileCache_2.10.2                               
 [5] dbplyr_2.5.0                                       
 [6] UpSetR_1.4.0                                       
 [7] umap_0.2.10.0                                      
 [8] stringr_1.5.1                                      
 [9] scales_1.3.0                                       
[10] RColorBrewer_1.1-3                                 
[11] qs_0.27.2                                          
[12] PCAtools_2.14.0                                    
[13] missMethyl_1.36.0                                  
[14] IlluminaHumanMethylationEPICanno.ilm10b4.hg19_0.6.0
[15] mCSEA_1.22.0                                       
[16] Homo.sapiens_1.3.1                                 
[17] TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2            
[18] GO.db_3.18.0                                       
[19] OrganismDbi_1.44.0                                 
[20] GenomicFeatures_1.54.4                             
[21] mCSEAdata_1.22.0                                   
[22] org.Hs.eg.db_3.18.0                                
[23] IlluminaHumanMethylation450kanno.ilmn12.hg19_0.6.1 
[24] minfi_1.48.0                                       
[25] bumphunter_1.44.0                                  
[26] locfit_1.5-9.10                                    
[27] iterators_1.0.14                                   
[28] foreach_1.5.2                                      
[29] Biostrings_2.70.3                                  
[30] XVector_0.42.0                                     
[31] SummarizedExperiment_1.32.0                        
[32] MatrixGenerics_1.14.0                              
[33] matrixStats_1.5.0                                  
[34] Gviz_1.46.1                                        
[35] gridExtra_2.3                                      
[36] GenomicRanges_1.54.1                               
[37] GenomeInfoDb_1.38.8                                
[38] forcats_1.0.0                                      
[39] EnhancedVolcano_1.20.0                             
[40] ggrepel_0.9.6                                      
[41] ggplot2_3.5.1                                      
[42] edgeR_4.0.16                                       
[43] limma_3.58.1                                       
[44] DT_0.33                                            
[45] dplyr_1.1.4                                        
[46] DOSE_3.28.2                                        
[47] DMRcate_2.16.1                                     
[48] data.table_1.16.4                                  
[49] cowplot_1.1.3                                      
[50] clusterProfiler_4.10.1                             
[51] circlize_0.4.16                                    
[52] BiocSingular_1.18.0                                
[53] BiocParallel_1.36.0                                
[54] AnnotationDbi_1.64.1                               
[55] IRanges_2.36.0                                     
[56] S4Vectors_0.40.2                                   
[57] Biobase_2.62.0                                     
[58] BiocGenerics_0.48.1                                

loaded via a namespace (and not attached):
  [1] R.methodsS3_1.8.2             dichromat_2.0-0.1            
  [3] progress_1.2.3                nnet_7.3-20                  
  [5] HDF5Array_1.30.1              vctrs_0.6.5                  
  [7] RApiSerialize_0.1.4           digest_0.6.37                
  [9] png_0.1-8                     shape_1.4.6.1                
 [11] deldir_2.0-4                  permute_0.9-7                
 [13] magick_2.8.5                  MASS_7.3-60.0.1              
 [15] reshape_0.8.9                 reshape2_1.4.4               
 [17] httpuv_1.6.15                 qvalue_2.34.0                
 [19] withr_3.0.2                   xfun_0.50                    
 [21] ggfun_0.1.8                   survival_3.8-3               
 [23] doRNG_1.8.6.1                 memoise_2.0.1                
 [25] gson_0.1.0                    BiasedUrn_2.0.12             
 [27] tidytree_0.4.6                GlobalOptions_0.1.2          
 [29] gtools_3.9.5                  R.oo_1.27.0                  
 [31] Formula_1.2-5                 prettyunits_1.2.0            
 [33] KEGGREST_1.42.0               promises_1.3.2               
 [35] httr_1.4.7                    restfulr_0.0.15              
 [37] rhdf5filters_1.14.1           stringfish_0.16.0            
 [39] rhdf5_2.46.1                  rstudioapi_0.17.1            
 [41] generics_0.1.3                reactome.db_1.86.2           
 [43] base64enc_0.1-3               curl_6.2.0                   
 [45] zlibbioc_1.48.2               ScaledMatrix_1.10.0          
 [47] ggraph_2.2.1                  polyclip_1.10-7              
 [49] GenomeInfoDbData_1.2.11       quadprog_1.5-8               
 [51] SparseArray_1.2.4             RBGL_1.78.0                  
 [53] interactiveDisplayBase_1.40.0 xtable_1.8-4                 
 [55] evaluate_1.0.3                S4Arrays_1.2.1               
 [57] preprocessCore_1.64.0         hms_1.1.3                    
 [59] irlba_2.3.5.1                 colorspace_2.1-1             
 [61] filelock_1.0.3                readxl_1.4.3                 
 [63] reticulate_1.40.0             magrittr_2.0.3               
 [65] readr_2.1.5                   later_1.4.1                  
 [67] viridis_0.6.5                 ggtree_3.10.1                
 [69] lattice_0.22-6                genefilter_1.84.0            
 [71] XML_3.99-0.18                 shadowtext_0.1.4             
 [73] Hmisc_5.2-2                   pillar_1.10.1                
 [75] nlme_3.1-167                  compiler_4.3.2               
 [77] beachmat_2.18.1               RSpectra_0.16-2              
 [79] stringi_1.8.4                 GenomicAlignments_1.38.2     
 [81] plyr_1.8.9                    crayon_1.5.3                 
 [83] abind_1.4-8                   BiocIO_1.12.0                
 [85] gridGraphics_0.5-1            graphlayouts_1.2.2           
 [87] bit_4.5.0.1                   fastmatch_1.1-6              
 [89] codetools_0.2-20              openssl_2.3.1                
 [91] crosstalk_1.2.1               bslib_0.8.0                  
 [93] biovizBase_1.50.0             multtest_2.58.0              
 [95] mime_0.12                     splines_4.3.2                
 [97] Rcpp_1.0.14                   sparseMatrixStats_1.14.0     
 [99] HDO.db_0.99.1                 cellranger_1.1.0             
[101] interp_1.1-6                  knitr_1.49                   
[103] blob_1.2.4                    BiocVersion_3.18.1           
[105] AnnotationFilter_1.26.0       fs_1.6.5                     
[107] checkmate_2.3.2               DelayedMatrixStats_1.24.0    
[109] ggplotify_0.1.2               tibble_3.2.1                 
[111] Matrix_1.6-5                  statmod_1.5.0                
[113] tzdb_0.4.0                    tweenr_2.0.3                 
[115] pkgconfig_2.0.3               tools_4.3.2                  
[117] cachem_1.1.0                  RSQLite_2.3.9                
[119] viridisLite_0.4.2             DBI_1.2.3                    
[121] graphite_1.48.0               fastmap_1.2.0                
[123] rmarkdown_2.29                Rsamtools_2.18.0             
[125] sass_0.4.9                    patchwork_1.3.0              
[127] BiocManager_1.30.25           VariantAnnotation_1.48.1     
[129] graph_1.80.0                  scrime_1.3.5                 
[131] rpart_4.1.24                  farver_2.1.2                 
[133] tidygraph_1.3.1               scatterpie_0.2.4             
[135] yaml_2.3.10                   latticeExtra_0.6-30          
[137] foreign_0.8-88                rtracklayer_1.62.0           
[139] illuminaio_0.44.0             cli_3.6.3                    
[141] purrr_1.0.2                   siggenes_1.76.0              
[143] GEOquery_2.70.0               lifecycle_1.0.4              
[145] askpass_1.2.1                 backports_1.5.0              
[147] annotate_1.80.0               gtable_0.3.6                 
[149] rjson_0.2.23                  ape_5.8-1                    
[151] jsonlite_1.8.9                bitops_1.0-9                 
[153] minfiData_0.48.0              bit64_4.6.0-1                
[155] yulab.utils_0.2.0             base64_2.0.2                 
[157] ReactomePA_1.46.0             RcppParallel_5.1.10          
[159] jquerylib_0.1.4               GOSemSim_2.28.1              
[161] dqrng_0.4.1                   R.utils_2.12.3               
[163] lazyeval_0.2.2                shiny_1.10.0                 
[165] htmltools_0.5.8.1             enrichplot_1.22.0            
[167] rappdirs_0.3.3                ensembldb_2.26.0             
[169] glue_1.8.0                    RCurl_1.98-1.16              
[171] treeio_1.26.0                 mclust_6.1.1                 
[173] BSgenome_1.70.2               jpeg_0.1-10                  
[175] igraph_2.1.4                  R6_2.5.1                     
[177] tidyr_1.3.1                   labeling_0.4.3               
[179] cluster_2.1.8                 rngtools_1.5.2               
[181] Rhdf5lib_1.24.2               beanplot_1.3.1               
[183] aplot_0.2.4                   bsseq_1.38.0                 
[185] DelayedArray_0.28.0           tidyselect_1.2.1             
[187] ProtGenerics_1.34.0           htmlTable_2.4.3              
[189] ggforce_0.4.2                 xml2_1.3.6                   
[191] rsvd_1.0.5                    munsell_0.5.1                
[193] nor1mix_1.3-3                 htmlwidgets_1.6.4            
[195] fgsea_1.28.0                  biomaRt_2.58.2               
[197] rlang_1.1.5                   ggnewscale_0.5.0